Prevendo preços de carros com estatística

Seminário de modelos lineares

Davi, Diogo, João, Thiago e Eduardo Garcez

2025-01-05

Introdução

O dataset foi escolhido pela plataforma kaggle e trata de observações sobre o mercado automotivo online da Georgia no ano de 2024.

Conforme o schema apresentado a seguir o dataset apresenta diversos detalhes sobre as vendas, condições do carro e outrs detalhes mais específicos.

Para esse trabalho, com o intuito de enfatizar os processos e análises que foram aprendidos na disciplina, tomamos liberdade de manipular o banco fornecido no site e descartar variáveis não utilizadas no modelo.

Abaixo também apresentamos uma tabela com as variáveis que escolhemos enfatizar e serão tratadas no modelo linear simulado.

app_id price car_run_km prod_year engine_volume cylinders airbags abs_break esd el_windows conditioner leather nav_system model_name category man_id man_name category_num
108687133 16000 55600 2021 2000 4 6 TRUE TRUE TRUE TRUE FALSE TRUE Mazda 3 Sedan 24 Mazda 36
108608289 13500 42500 2019 2000 4 6 TRUE TRUE TRUE TRUE FALSE TRUE Mazda 3 Sedan 24 Mazda 36
106961361 134000 38000 2023 4400 8 9 TRUE TRUE TRUE TRUE FALSE TRUE Range Rover Jeep 22 Land Rover 24
107494885 16500 49600 2016 2000 4 6 TRUE TRUE TRUE TRUE FALSE TRUE SLC 300 Cabriolet 25 Mercedes-Benz 5
108126733 32000 20200 2021 3200 4 12 TRUE TRUE TRUE TRUE FALSE TRUE Ranger Pickup 12 Ford 32
108901093 50000 42000 2022 3000 6 12 TRUE TRUE TRUE TRUE FALSE TRUE S5 Sedan 2 Audi 36

Explorando o banco de dados

Estatísticas gerais

price car_run_km prod_year engine_volume cylinders airbags esd el_windows conditioner leather nav_system model_name category man_id man_name category_num
Mínimo 0.00 0.000000e+00 0.00 0.00 0.00 0.00 NA NA NA NA NA NA NA 1.00 NA 1.00
Máximo 8388607.00 1.608998e+06 2025.00 20000.00 12.00 12.00 NA NA NA NA NA NA NA 1249.00 NA 45.00
Mediana 2000.00 1.077735e+05 2017.00 2200.00 4.00 12.00 NA NA NA NA NA NA NA 25.00 NA 36.00
Média 5995.44 1.205337e+05 2015.47 2436.38 4.61 9.36 NA NA NA NA NA NA NA 28.49 NA 29.99
Variância 765991983.88 1.037134e+10 533.59 1297893.57 3.04 14.13 NA NA NA NA NA NA NA 2832.02 NA 51.95
Desvio Padrão 27676.56 1.018398e+05 23.10 1139.25 1.74 3.76 NA NA NA NA NA NA NA 53.22 NA 7.21
Coeficiente de Variação 4.62 8.400000e-01 0.01 0.47 0.38 0.40 NA NA NA NA NA NA NA 1.87 NA 0.24

Graficos das variaveis

Preço

Quilometragem

Ano do carro

Volume do motor

Cilindros

Airbags

Modelo Simples

Modelo Multivariado

Equação do modelo linear

A equação do modelo linear é dada por: \[ \text{price} = \beta_0 + \beta_1 \cdot \text{car_run_km} + \beta_2 \cdot \text{prod_year} + \beta_3 \cdot \text{engine_volume} + \beta_4 \cdot \text{cylinders} \]

#> 
#> Call:
#> lm(formula = price ~ car_run_km + prod_year + engine_volume + 
#>     cylinders + category_num + airbags + abs_break + esd + el_windows + 
#>     conditioner + leather + nav_system + man_id + category_num, 
#>     data = data)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#>  -33518   -4297   -1119    1695 8369007 
#> 
#> Coefficients:
#>                   Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)     -3.197e+04  7.137e+03  -4.479 7.51e-06 ***
#> car_run_km      -1.148e-02  8.346e-04 -13.756  < 2e-16 ***
#> prod_year        2.054e+01  3.548e+00   5.789 7.11e-09 ***
#> engine_volume    9.434e-01  1.012e-01   9.322  < 2e-16 ***
#> cylinders        7.150e+02  7.051e+01  10.140  < 2e-16 ***
#> category_num    -1.215e+02  1.129e+01 -10.761  < 2e-16 ***
#> airbags         -3.126e+02  2.745e+01 -11.388  < 2e-16 ***
#> abs_breakTRUE   -2.767e+03  5.127e+02  -5.397 6.79e-08 ***
#> esdTRUE          8.920e+03  1.901e+02  46.911  < 2e-16 ***
#> el_windowsTRUE  -2.804e+03  6.550e+02  -4.281 1.86e-05 ***
#> conditionerTRUE -3.398e+03  6.219e+02  -5.463 4.69e-08 ***
#> leatherTRUE     -2.729e+02  1.363e+04  -0.020    0.984    
#> nav_systemTRUE   1.896e+03  3.023e+02   6.272 3.57e-10 ***
#> man_id           2.018e+01  1.541e+00  13.092  < 2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 27250 on 115242 degrees of freedom
#> Multiple R-squared:  0.03058,    Adjusted R-squared:  0.03047 
#> F-statistic: 279.6 on 13 and 115242 DF,  p-value: < 2.2e-16
#> 
#> Call:
#> lm(formula = price ~ car_run_km + prod_year + engine_volume + 
#>     cylinders + category_num + airbags + abs_break + esd + el_windows + 
#>     conditioner + leather + nav_system + man_id + category_num, 
#>     data = data_filter)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -105878   -4902   -1565    2175 8319028 
#> 
#> Coefficients:
#>                   Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)     -1.312e+06  6.440e+04 -20.369  < 2e-16 ***
#> car_run_km      -2.011e-02  1.857e-03 -10.827  < 2e-16 ***
#> prod_year        6.524e+02  3.200e+01  20.391  < 2e-16 ***
#> engine_volume    2.611e+00  2.234e-01  11.688  < 2e-16 ***
#> cylinders        1.892e+03  1.682e+02  11.245  < 2e-16 ***
#> category_num    -1.328e+02  2.217e+01  -5.989 2.13e-09 ***
#> airbags         -4.093e+02  5.498e+01  -7.445 9.85e-14 ***
#> abs_breakTRUE    1.627e+03  8.223e+02   1.979  0.04785 *  
#> esdTRUE          1.971e+02  7.173e+02   0.275  0.78353    
#> el_windowsTRUE   1.150e+03  1.038e+03   1.108  0.26778    
#> conditionerTRUE -1.208e+03  9.816e+02  -1.230  0.21863    
#> leatherTRUE      1.306e+04  3.799e+04   0.344  0.73100    
#> nav_systemTRUE   1.449e+03  5.350e+02   2.708  0.00676 ** 
#> man_id           9.643e+01  4.750e+00  20.302  < 2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 37990 on 54098 degrees of freedom
#> Multiple R-squared:  0.03934,    Adjusted R-squared:  0.03911 
#> F-statistic: 170.4 on 13 and 54098 DF,  p-value: < 2.2e-16
#> 
#> Call:
#> lm(formula = log(price) ~ car_run_km + prod_year + engine_volume + 
#>     cylinders + category_num + airbags + abs_break + esd + el_windows + 
#>     conditioner + leather + nav_system + man_id + category_num, 
#>     data = data_filter)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -3.9975 -0.3154 -0.0146  0.3067  6.6729 
#> 
#> Coefficients:
#>                   Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)     -9.377e+01  9.865e-01 -95.056  < 2e-16 ***
#> car_run_km      -1.144e-06  2.844e-08 -40.226  < 2e-16 ***
#> prod_year        5.075e-02  4.901e-04 103.550  < 2e-16 ***
#> engine_volume    2.214e-04  3.422e-06  64.687  < 2e-16 ***
#> cylinders        5.711e-02  2.577e-03  22.165  < 2e-16 ***
#> category_num    -1.017e-02  3.396e-04 -29.935  < 2e-16 ***
#> airbags         -1.817e-02  8.421e-04 -21.578  < 2e-16 ***
#> abs_breakTRUE    7.112e-02  1.259e-02   5.647 1.64e-08 ***
#> esdTRUE          1.414e-01  1.099e-02  12.871  < 2e-16 ***
#> el_windowsTRUE   3.666e-02  1.590e-02   2.306  0.02110 *  
#> conditionerTRUE  4.036e-02  1.503e-02   2.684  0.00727 ** 
#> leatherTRUE      9.619e-01  5.819e-01   1.653  0.09836 .  
#> nav_systemTRUE   2.335e-01  8.194e-03  28.501  < 2e-16 ***
#> man_id           9.598e-04  7.275e-05  13.193  < 2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 0.5819 on 54098 degrees of freedom
#> Multiple R-squared:  0.4713, Adjusted R-squared:  0.4711 
#> F-statistic:  3709 on 13 and 54098 DF,  p-value: < 2.2e-16

Interpretação dos Coeficientes

  • \(\beta_0\) (intercept) nos indica que o valor esperado quando do veículo quando car_run_km (quilometragem) e prod_year (ano de produção) são zero. Logo o beta_0 não tem interpretação prática pois o ano de produção não pode ser 0.

  • car_run_km (Quilometragem): Para cada quilômetro adicional rodado, o preço do veículo aumenta em média 0.0001871 unidades monetárias, mantendo todas as outras variáveis constantes.
    Este coeficiente não é estatisticamente significativo (p-valor = 0.813).

  • prod_year (Ano de produção): ara cada ano adicional de produção, o preço do veículo aumenta em média 2.676 unidades monetárias, mantendo todas as outras variáveis constantes.
    Este coeficiente não é estatisticamente significativo (p-valor = 0.402).

  • engine_volume (volume do motor) : Para cada unidade adicional no volume do motor, o preço do veículo aumenta em média 1.583 unidades monetárias, mantendo todas as outras variáveis constantes.
    Este coeficiente é estatisticamente significativo (p-valor < 2e-16).

  • cylinders (cilindro adicional): Para cada cilindro adicional, o preço do veículo diminui em média 362.5 unidades monetárias, mantendo todas as outras variáveis constantes.
    Este coeficiente é estatisticamente significativo (p-valor = 6.31e-08).

Interpretação do teste F

F-statistic: 90.11
p-valor: < 2.2e-16

  • F-statistic: O valor de 90.11 indica que a variabilidade explicada pelo modelo é significativamente maior do que a variabilidade não explicada. Em outras palavras, o modelo como um todo é significativo.

  • p-valor: O p-valor é extremamente pequeno (< 2.2e-16), o que significa que a probabilidade de observar um valor de F tão extremo, ou mais extremo, sob a hipótese nula é praticamente zero.

  • Conclusão:

    • Como o p-valor é muito menor que qualquer nível de significância comum (por exemplo, 0.05), rejeitamos a hipótese nula.
    • Isso indica que pelo menos uma das variáveis independentes no modelo tem um efeito significativo sobre a variável dependente (preço do veículo).
    • Portanto, o modelo de regressão linear é estatisticamente significativo e útil para prever o preço dos veículos com base nas variáveis incluídas

Voltando a equação…

\[ \text{price} = \beta_0 + \beta_1 \cdot \text{car_run_km} + \beta_2 \cdot \text{prod_year} + \beta_3 \cdot \text{engine_volume} + \beta_4 \cdot \text{cylinders} \] Substituindo os valores dos coeficientes estimados, temos:

\[ \text{price} = -1239 + 0.0001871 \cdot \text{car_run_km} + 2.676 \cdot \text{prod_year} + 1.583 \cdot \text{engine_volume} - 362.5 \cdot \text{cylinders} \]

Gráficos do modelo encontrado

Gráficos em log escala

EXTRAS (INTERESSANTES)